<?php


$PREFER_DEFLATE = false;
$FORCE_COMPRESSION = false;


function compress_output_gzip($output) {
   return gzencode($output);
}

function compress_output_deflate($output) {
   return gzdeflate($output, 9);
}

if(isset($_SERVER['HTTP_ACCEPT_ENCODING'])){
   $AE = $_SERVER['HTTP_ACCEPT_ENCODING'];
}elseif(isset($_SERVER['HTTP_TE'])){
   $AE = $_SERVER['HTTP_TE'];
}else{
   $AE = 0;
}

$support_gzip = (strpos($AE, 'gzip') !== FALSE) || $FORCE_COMPRESSION;
$support_deflate = (strpos($AE, 'deflate') !== FALSE) || $FORCE_COMPRESSION;

if($support_gzip && $support_deflate) {
   $support_deflate = $PREFER_DEFLATE;
}

if ($support_deflate) {
   header("Content-Encoding: deflate");
   ob_start("compress_output_deflate");
} else{
   if($support_gzip){
       header("Content-Encoding: gzip");
       ob_start("compress_output_gzip");
   } else {
       ob_start();
   }
}
?>